package fixmodel.impl;

import fixmodel.base.Quack;
import fixmodel.observable.Observable;
import fixmodel.observable.Observer;

/**红头鸭子
 * @author yaojianfeng
 */
public class RedHeadDuck implements Quack {
    private Observable observable;

    public RedHeadDuck() {
        observable = new Observable(this);
    }

    /**
     * quack 只需要做好一件事儿即可
     */
    @Override
    public void quack() {
        System.out.println("红头鸭 呱~呱~叫!");
        notifyObservers();
    }

    /**
     * 注册方法
     *
     * @param observer 被观察者
     */
    @Override
    public void registerObserver(Observer observer) {
        observable.registerObserver(observer);
    }

    /**
     * 通知观察者
     */
    @Override
    public void notifyObservers() {
        observable.notifyObservers();
    }
}
